/***********************************************************************
    filename:   DaterMainIconWindow.h
    created:    10/4/2012
    author:     4Ys

    purpose:    Defines class for MainIconWindow objects in UI
*************************************************************************/
#ifndef	_DaterMainIconWindow_h_
#define _DaterMainIconWindow_h_

#include "DaterMainWindow.h"
#include "DaterIcon.h"
#include <map>
#include <string>

class MainIconWindow : public MainWindow
{
	/* !
	\brief
		The Events in Day version.
	*/
public:
		/* !
		\brief
			Construct the sample of class MainCalendarDayWindow.

		\param id_name
			- a string to represent the prefix of the window.
			
		\param parent
			- point to parent window.
		*/
	MainIconWindow(const CEGUI::String& id_name, CEGUI::Window* parent = 0);
	
		/* !
			Destructor of class MainCalendarDayWindow.
		*/
	~MainIconWindow();

		/* !
		\brief
			a virtual function generated from class MainCalendarWindow to show window.
		*/
	virtual void showWindow();
	
		/* !
		\brief
			a virtual function generated from class MainCalendarWindow to hide window.
		*/
	virtual void hideWindow();

private:
	/// member to subscribe handler to each 'slot' in the layout.
    void subscribeEvents();
    /// member that handles what happens when an item is dropped in a slot.
    bool handle_ItemDropped(const CEGUI::EventArgs& args);
	/// member that handles what happens when an item is dropped in an image.
	bool handle_ItemDroppedOnImage(const CEGUI::EventArgs& args);

	std::map<std::string, Icon*> _icons;
};

#endif